﻿using System;
using System.Collections;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
                    ArrayList List = new ArrayList();
            //      count 表示这个集合中实际包含的元素个数
            //      capcity 表示这个集合中可以包含的元素个数
            //      每次集合中实际包含的元素个数（count）超过了可以包含的元素个数（capcity）
            //      集合就会向内存中申请多开辟一倍的空间从而保证集合的长度够用


            //      添加单个元素 Add
            //        List.Add(1);
            //        List.Add(3.14);
            //        List.Add(true);
            //        List.Add("张三");
            //      添加集合元素 AddRange
            //        List.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });
            //      List.AddRange(List);
            //      List.Clear();     //删除集合所有元素
            //      List.Remove(1);   //删除指定元素
            //      List.RemoveAt(0); //根据下标删除元素
            //      List.RemoveRange(0, 4);   //根据下标删除一定范围的元素
            //      List.Sort();      //升序排列
            //      List.Reverse();//反转
            //      List.Insert(0, "李四");   //根据下标插入数据（插入的数据在指定的下标前面）
            //      List.InsertRange(0, new string[] { "张三", "李四" });   //根据下标插入数组（插入的数组在指定的下标前面）
            //      bool b = List.Contains(true);   //判断是否包含元素,返回一个布尔值
            //      Console.WriteLine(b);
            //      List.Add("龙傲天");
            //      if (! List.Contains("龙傲天"))
            //      {
            //          List.Add("龙傲天");
            //      }
            //      else
            //      {
            //          Console.WriteLine("集合里已经有这个元素了");
            //      }
            //      for (int i = 0;i<List.Count; i++)
            //      {
            //          Console.WriteLine(List[i]);
            //      }


            //集合练习1）、创建一个集合，里面添加一些数字，求平均值与和,最大值与最小值
            //List.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
            //int Sum = 0;
            //int Max = (int)List[0];
            //int Min = (int)List[0];
            //for(int i = 0; i < List.Count; i++)
            //{
            //    if ((int)List[i] > Max)
            //    {
            //        Max = (int)List[i];
            //    }

            //    Sum += (int)List[i];

            //    if ((int)List[i] < Min)
            //    {
            //        Min = (int)List[i];
            //    }
            //}
            //int Avg = Sum / List.Count;
            //Console.WriteLine("集合元素的和为：{0}，平均值为：{1},最大值为：{2}，最小值为：{3}",Sum,Avg,Max,Min);


            //写一个长度为10的集合，要求在里面随机的存放是个数组（0-9），但是要求所有数字不重复
            Random r = new Random();
            for(int i = 0;i < 10; i++)
            {
                int rNumber = r.Next(0, 10);
                if (! List.Contains(rNumber))
                {
                    List.Add(rNumber);
                }
                else //代表集合中有这个随机数
                {
                    //一旦产生了重复的随机数，就代表这次循环不算数
                    i--;
                }
            }

            for(int i = 0; i< List.Count; i++)
            {
                Console.WriteLine(List[i]); 
            }



        }
    }
}
